package org.deng.learn.designpattern.prototype;

import java.util.LinkedList;
import java.util.List;

/**
 * @author DengLibin
 * @Description 原型模式：
 * 原型模式通过复制对象的方式创建对象，意图为复用对象既有的状态以简化对象创建过程。
 *
 * 适用于对象创建过程复杂或者开销很大而且创建好的对象大部分属性都相同的情况。举个例子来说，比如对象new出来之后，
 * 还需要调用一大堆的set方法来初始化这个对象，而我需要创建很多个这样的对象，并且对象的大部分属性还是设置的一模一样的值。
 * 这个时候，就可以运用原型模式来创建对象（通过克隆来创建对象）。
 *
 * @Date 2019/2/26 0026 17:27
 */
public class Main {

    public  static  void main(String[] args){
        List<Point> list = new LinkedList<>();
        list.add(new Point(1,2));
        list.add(new Point(2,2));
        list.add(new Point(2,1));
        PolygonPrototype rect = new Rectangle(list);
        PolygonPrototype copyRect = rect.clone();
    }
}
